package com.hermes.test;

import java.io.File;
import java.util.Iterator;
import java.util.List;
import java.util.UUID;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.struts2.ServletActionContext;

import com.hermes.common.action.AsynBaseAction;

public class PicUp extends AsynBaseAction{

@Override
public String execute() throws Exception {

    String savePath = "D:";
    savePath = savePath + "/uploads/";
    File f1 = new File(savePath);
    System.out.println(savePath);
    if (!f1.exists()) {
        f1.mkdirs();
    }
    HttpServletRequest request = ServletActionContext.getRequest();
    DiskFileItemFactory fac = new DiskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(fac);
    upload.setHeaderEncoding("utf-8");
    List fileList = null;
    try {
        fileList = upload.parseRequest(request);
    } catch (FileUploadException ex) {
        return null;
    }
    Iterator<FileItem> it = fileList.iterator();
    String name = "";
    String extName = "";
    while (it.hasNext()) {
        FileItem item = it.next();
        if (!item.isFormField()) {
            name = item.getName();
            long size = item.getSize();
            String type = item.getContentType();
            System.out.println(size + " " + type);
            if (name == null || name.trim().equals("")) {
                continue;
            }
            //扩展名格式：  
            if (name.lastIndexOf(".") >= 0) {
                extName = name.substring(name.lastIndexOf("."));
            }
            File file = null;
            do {
                //生成文件名：
                name = UUID.randomUUID().toString();
                file = new File(savePath + name + extName);
            } while (file.exists());
            File saveFile = new File(savePath + name + extName);
            try {
                item.write(saveFile);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
	return SUCCESS;    
} 
}
